/*************************************************************************
	> File Name: read_fifo.c
	> Author: 李远远
	> Mail: 
	> Created Time: 2018年08月27日 星期一 13时36分48秒
 ************************************************************************/

#include <read_fifo.h>

/*
 * 函数名:read_fifo
 * 功能:管道接收信息处理
	管道接收数据
		1.客户端与服务器通信的结构体	标识：#ZTXX#
		2.配置信息结构体				标识：#PZXX#
		3.登录信息返回结果				标识：#ADMR#
		4.历史数据						标识：#LSSJ#
 * 参数:无
 * 返回值:成功返回OK,失败返回ERR
 */
void *socket_write_pthread(void *socketID)
{
    int ret = 0;
	int sockID = *(int *)socketID;
    int fifo_fd;
	int fd;
    fifo *p = NULL;

    while(1)
    {
	    p = (fifo *)malloc(sizeof(fifo));
	    if (NULL != p)
    	{
		    break;
	    }
    }
	
	fifo_fd = open(SOCKET_FIFO, O_RDWR);
	printf("socket**********write xian cheng chuang jian cheng gong:%d\n", sockID);
	while(1)
	{
		
		ret = read(fifo_fd, p, sizeof(fifo));
		
		if (0 == memcmp(p->buf, DLOK, strlen(DLOK)))	//登录反馈信息,如果登录成功
		{
			adm_state adm_sta;
			adm_sta.state = 1;
			adm_sta.sockID = p->sockID;
			fd = open(COLLECT_DATA_FIFO, O_WRONLY);
			write(fd, p, sizeof(fifo));
			close(fd);
		}
		
		ret = write(sockID, p->buf, BUF_SIZE - 10);
		printf("socket**********fa song cheng gong:%d\n", ret);
		if (0 > ret)
		{
			perror("socket**********read_fifo:write error");
		}
	}
	free(p);
	return OK;
}


